package com.movie.service;

import com.movie.entity.Showtime;
import java.util.List;
import java.util.Map;

public interface ShowtimeService {

    /**
     * 根据电影 ID 获取可用场次列表
     * @param movieId 电影 ID
     * @return 场次列表
     */
    List<Showtime> getShowtimesByMovieId(Long movieId);

    /**
     * 根据 ID 获取场次详情
     * @param id 场次 ID
     * @return 场次对象
     */
    Showtime getShowtimeById(Long id);

    /**
     * 创建新的场次
     * @param showtime 场次对象
     * @return 创建后的场次对象 (可能带有生成的 ID)
     */
    Showtime createShowtime(Showtime showtime);

    /**
     * 分页获取所有场次，用于管理员后台
     * @param page 页码（从0开始）
     * @param size 每页大小
     * @return 包含分页信息的结果
     */
    Map<String, Object> getAllShowtimesPaged(int page, int size);

    /**
     * 根据 ID 删除场次
     * @param id 场次 ID
     * @return 如果删除成功返回 true，否则返回 false (例如找不到)
     */
    boolean deleteShowtime(Long id);

    /**
     * 更新场次信息
     * @param showtime 场次对象
     * @return 更新后的场次对象
     */
    Showtime updateShowtime(Showtime showtime);

    /**
     * 更新场次的可用座位数量
     * @param showtimeId 场次ID
     * @return 更新后的可用座位数量
     */
    int updateAvailableSeats(Long showtimeId);
}